Frame interpolation creates an image frame from neighboring images. The neighboring images may be fields in an interlaced video format, used to form a frame of data, or neighboring frames of a soon-to-be-created frame. Typically, frame interpolation has the goal of increasing the number of frames. For example, one may desire to convert from a 24 frame per second rate, such as in film, to 120 frames per second for a video display device such as a liquid crystal display.
In the simplest approach, one could increase the frame rate by repeating the most recent frame until the next frame is ready for display. However, this does not account for moving objects which may appear to jump from frame to frame and have flickering artifacts. Motion estimation and motion compensation techniques may alleviate some of these issues. These techniques rely upon motion vectors to shift the image data for the moving object to the correct position in interpolated frames, thereby compensating for the motion of the object.
In the above example of converting from 24 frames per second to 120 frames per second, current approaches perform motion estimation for each interpolated phase. For example, the process would calculate the motion vector field at phases 0, 0.2, 0.4, 0.6 and 0.8 between the successive input frames to convert up to 120 frames per second. This consumes both time and computing resources, making the process slow and fairly hardware intensive. This becomes even more problematic for higher frame rates, such as 240 frames per second.